//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __ELASTOS_KCONFIG_H__
#define __ELASTOS_KCONFIG_H__

#ifdef _x86

//#define KCONFIG_GLOBAL_BREAKPOINT

#define KCONFIG_KERNEL_BASE             0x80000000

#define KCONFIG_SYSTEMCALL_VECTOR       0x80

#define KCONFIG_TICKRATE                100             // unit: HZ

#define KCONFIG_MSTAT
#elif defined(_arm)

#ifndef _neptune
#define KCONFIG_KERNEL_BASE             0xc0000000
#else
#define KCONFIG_KERNEL_BASE             0x13000000
#endif

#define KCONFIG_MEMORY_MAPPED_IO_BASE   0x80000000

#ifdef _neptune
#define KCONFIG_TICKRATE                100             // unit: HZ
#else
#define KCONFIG_TICKRATE                100             // unit: HZ
#endif

#define KCONFIG_HIGH_VECTOR             TRUE

#define KCONFIG_MSTAT
#elif defined(_mips)

#define KCONFIG_KERNEL_BASE             0x80000000

#define KCONFIG_TICKRATE                100             // unit: HZ

#else

#error unknown architecture

#endif // _x86

#define KCONFIG_NUMBEROF_ORDERS         11

#define KCONFIG_THREADCACHE_WATERMARK   8

#define KCONFIG_SMP                     FALSE

// OID2OBJ , NAMEHOOK Hash table Shift
//
#define CFG_OID2OBJ_HS      16
#define CFG_NAME2NAMEHOOK_HS 16
#define CFG_IMPORTOBJECT_HS 16
#define CFG_EXPORTOBJECT_HS 16

#endif //__ELASTOS_KCONFIG_H__
